var express = require('express');
var router = express.Router();

var { createToken, verifytoken} = require('../utils/jwt')

//这个model，对指定的集合进行各种操作
var userModel = require('../models/userModel')

//URL: http://localhost:9898/api/v1/user/login
//Method: GET / POST / PUT
//入参：{}
router.post('/login', (req, res)=> {
  //接收入参、并验证必填参数和数据类型进行校验
  //给非必填参数赋默认值
  //数据库增删改查（用到Model）
  //数据库操作成功，对数据进行处理、过滤、排序。。。
  //把处理完的数据返回前端
  let { username, password } =req.body

  if(!username || !password) return res.json({err:1,msg:'username和password是必填参数'})
  userModel 
  .findOne({username,password})
  .then(doc=>{
    if(doc && doc._id){
      //表示用户可以登录，记录登录状态(token)
      const token = createToken(doc)
      res.json({err:0,msg:'sucess',data:{token}})
    }else{
      res.json({err:1,msg:'用户名和密码不匹配'})
    }
  }) 

}) 

router.get('/info', (req, res)=>{
  let { token } = req.query
  verifytoken(req, res).then(user=>{
    console.log('反解析成功', user)
    userModel
    .findOne({username: user.username})
    .then(doc=>{
        res.json({
          err:0,
          msg: 'success',
          data:{
            ...doc._doc  
            // avatar: doc.avatar,
            // introduction: doc.introduction,
            // roles: doc.roles,
            // name: doc.username,
          }
        })
    })
  })
})

module.exports = router;
 